SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [spControlAsistencia]


@alumno int,
@fecha varchar(10),
@causa int,
@cursada int,

-- Parametro para especifica que operacion es A=Alta, B=Baja, M=Modificacion
@ABM int
AS



if exists (Select * from tb_insasistecias where Alumno = @alumno and fecha = @fecha) begin
set @ABM = 3
end
else begin
set @ABM = 1
end

if @ABM = 1 begin
BEGIN TRANSACTION
INSERT INTO tb_inasitencias (Alumno,fecha,causa,cursada)
VALUES (@Alumno,@fecha,@causa,@cursada)

declare @idinasistencia int 
Select @idinasistencia =  @@identity


if @@Error = 0
	COMMIT TRANSACTION
else
	ROLLBACK TRANSACTION
end

if @ABM = 3 begin
BEGIN TRANSACTION
UPDATE tb_inasistencia
SET causa = @causa WHERE Alumno = @alumno and fecha = @fecha

if @@Error = 0
	COMMIT TRANSACTION
else
	ROLLBACK TRAN
end

if @ABM = 2 begin
BEGIN TRANSACTION
DELETE tb_inasistencia FROM  tb_inasistencia WHERE Alumno=@Alumno and fecha = @fecha

if @@error = 0
	COMMIT TRAN
else
	ROLLBACK TRAN

end
GO
